﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GKS.DataTypes.Math.Numbers {
    public interface INumber {
        /// <summary>
        /// Get the string representation of the number in the indicated base.
        /// </summary>
        /// <param name="representationBase">
        /// The representation base for the string representation (2, 8, 10, 16, etc).
        /// </param>
        /// <returns>
        /// The string representation of this INumber in the given base.
        /// </returns>
        string ToString(int representationBase);

        INumber Add(INumber another);

        INumber Subtract(INumber another);

        INumber Multiply(INumber another);

        INumber Divide(INumber another);
    }
}
